<?php

require_once("dao/Dao.php");

/**
 * DAO de l'objet offre acheté.
 *
 * @author Anaud
*/
class OffreVenteOptionFixeDao extends Dao{

	protected static $tableName = "ve_option_fixe";
	

	/**
	 * Suppression d'une offre
	 */
	public static function delete($id){
		global $bdd, $logger;

		$logger->info("Suppression de l'offre : " + $id);

		// Suppression de l'offre
		$requete = $bdd->prepare("DELETE FROM ".OffreVenteOptionFixeDao::$tableName." WHERE id ='".$id."' ");
		if ($requete->execute()){

			if ($requete->execute()){
				// La suppression c'est correctement réalisée.
				return true;
			}
		}
		$logger->error("Erreur lors de la suppression de l'offre : " + $id);

		// La suppression a produit une erreur
		return false;
	}

	/**
	 * Recherche des options
	 */
	public static function getAll(){
		return parent::find(OffreVenteOptionFixeDao::$tableName);
	}
	
	/**
	 * Recherche des offres par type et options restantes
	 */
	public static function getOptionType($type,$jours,$horaires,$fixe,$mobile,$international){
		if($type == 'vga')
		{ 
			$sql = " type = 'vga'  "; 
		}
		elseif($type == 'vga/num')
		{ 
			$sql = " type= 'vga/num' "; 
		}else{
			$sql = " type = 'voip' ";
		}
		if($jours){ $sql.= 'AND jours = "" ' ;}
		if($horaires){ $sql.= 'AND horaires = "" ' ;}
		if($fixe){ $sql.= 'AND fixe = "" ' ;}
		if($mobile){ $sql.= 'AND mobile = "" ' ;}
		if($international){ $sql.= 'AND international = "" ' ;}
		//ne pas prendre les options qui sont déjà prises
		
		return parent::find(OffreVenteOptionFixeDao::$tableName,$sql);
	}
	
	/**
	 * Recherche des offres par type 
	 */
	public static function getOptionsType($type){
		if($type == 'vga')
		{ 
			$sql = " (type = 'vga') "; 
		}elseif($type == 'vga/num'){
			$sql = " (type= 'vga/num') "; 
		}elseif($type == 'voip'){	
			$sql = " type = 'voip' ";
		}elseif($type == 'xdsl'){	
			$sql = " type = 'xdsl' ";
		}
		return parent::find(OffreVenteOptionFixeDao::$tableName,$sql);
	}


	/**
	 * Recherche des offres par id offre 
	 */
	public static function searchById($id){
		return parent::find(OffreVenteOptionFixeDao::$tableName, "id='".$id."'");
	}
	

	/**
	 * Recherche des offres par code offre et nom
	 */
	public static function searchByCode($code_article){
		return parent::find(OffreVenteOptionFixeDao::$tableName, "code_article LIKE '%".$code_article."%' OR nom LIKE '%".$code_article."%'");
	}
	

	
	/**
	 * Retourne toutes les options fixe
	 */
	public static function getOffresMobile(){
		return parent::find(OffreVenteOptionFixeDao::$tableName);
	}
	
	/**
	 * Liste complète des listes pays
	 */
	public static function getAllPays(){
		return parent::find("pays_international_fixe_mobile", "type = 'voip' OR type = 'vga' ");
	}
		
	
	/**
	 * Update option
	 */
		public static function update($id,$code_achat,$type,$code_article,$nom,$temps_min,$jours,$horaires,$fixe,$mobile,$international,$pv0m,$pv12m,$pv24m,$pv36m,$pv48m){
		
		return parent::exec("UPDATE ".OffreVenteOptionFixeDao::$tableName." SET id_ha='".$code_achat."', type='".$type."', code_article='".$code_article."', nom='".$nom."', temps_min='".$temps_min."', jours='".$jours."', horaires='".$horaires."', fixe='".$fixe."', mobile='".$mobile."', id_international='".$international."', pv0m='".$pv0m."', pv12m='".$pv12m."', pv24m='".$pv24m."', pv36m='".$pv36m."', pv48m='".$pv48m."' WHERE id=".$id."" );
		}
		
		
	
}

